package com.hippo.javacore.multithreading;

/**
 * @ClassName TreradDemo6
 * @Description TODO 线程方法--开启守护线程
 * @Author tangxl
 * @create 2023-03-13 09:09
 **/
public class ThreadDemo6 {

    public static class MyThread1 extends Thread {
        @Override
        public void run() {
            // 循环输出1~10
            for (int i = 1; i < 10 ;i++) {
                System.out.println(getName() + "输出" + i);
            }
        }
    }

    public static class MyThread2 extends Thread {
        @Override
        public void run() {
            // 循环输出1~100
            for (int i = 1; i < 100 ;i++) {
                System.out.println(getName() + "输出" + i);
            }
        }
    }
    public static void main(String[] args) {
        /**
         * final void setDaemon(boolean on) 设置为守护线程
         * 细节：
         *      当其他线程结束后，守护线程也会陆续结束
         * 通俗易懂：
         *      例如下面当线程1结束后，线程2没有执行完也要结束。
         */
        // 创建线程
        Thread t1 = new MyThread1();
        Thread t2 = new MyThread2();

        // 线程命名
        t1.setName("线程1");
        t2.setName("线程2");

        // 把线程2设置为守护线程(备胎线程)
        t2.setDaemon(true);

        // 执行线程
        t1.start();
        t2.start();
    }
}
